package com.example.springboot.controller;

import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpSession;
import java.util.Map;
/*
* 重定向用return "redirect:/main.html";
* 重定向的问题 就网站直接输入http://localhost:8080/main.html就可以直接进入到这个页面了？
* 失去了登录的意义 我们需要 登陆成功才可以进入到这个页面
* 解决：需要一个拦截器
* */
/*
*登录成功 如果直接这样 那在表单页刷新页面 会重复提交表单
为了避免重复提交 用重定向 在config里面添加新的视图解析 映射
return "dashboard";
main.html 表示当前项目下main.html
成功后到main页面 而在config里面main页面映射的是dashboard 也就到了dashboard.html页面
* */
@Controller
public class LoginController {
    //控制器实现跳转 你在html里面编写了提交 然后action跳转的页面 调用post请求 你的控制器收到了这个
    //请求 获取这个对应请求 就会执行相应的操作
    @PostMapping(value = "/user/login")
    public String login(@RequestParam("username") String username,
                        @RequestParam("password") String password,
                        Map<String,Object> map,
                        HttpSession session){
        if(StringUtils.hasText(username)&&"123456".equals(password)){
            //如果登录成功就传入session‘
             session.setAttribute("loginUser",username);
             //重定向到/main.html
            return "redirect:/main";
        }else{
            //登录失败
            map.put("msg","登录失败");
            return "login";
        }

    }
}
